//
//  RSDataTrackManager.h
//  RaStarDataTrackFramework
//
//  Created by RaStar on 2020/11/10.
//

#import <Foundation/Foundation.h>
#import "RSDataTrackStaticManager.h"

NS_ASSUME_NONNULL_BEGIN

@interface RSDataTrackManager : NSObject

/// 数据收集上报版本号
@property(nonatomic, copy) NSString *dataTrackVersion;

/// 获取数据上报管理
+ (instancetype)manager;

/// 设置基本参数，请在 AppDelegate中的 application:didFinishLaunchingWithOptions: 方法中实现
/// @param cchid 渠道ID
/// @param appid 子游戏ID
/// @param appkey 加密Key
- (void)setRSDataBasicParameters:(int)cchid AppID:(int)appid AppKey:(NSString *)appkey;


/// 游戏角色上报
/// @param uid UID 使用星辉用户体系时可以为空
/// @param createTime 创角时间，单位ms
/// @param action 角色执行动作
/// @param roleID 角色id
/// @param roleName 角色名称
/// @param roleLevel 角色等级
/// @param serverID 角色选服的服务器id（可以是合服后的服务器id）
/// @param serverName 角色选服的服务器名称（可以是合服后的服务器名称）
/// @param realServerName 角色创建所在的服务器名称（非合服后的服务器名称)
/// @param realServerID 角色创建所在的服务器id（非合服后的服务器id）
/// @param vip 角色vip等级
/// @param partyName 加入的公会名称
- (void)uploadUserID:(int)uid CreateRoleTime:(UInt64)createTime Action:(RaStarUserActionType)action RoleID:(NSString *)roleID RoleName:(NSString *)roleName RoleLevel:(int)roleLevel ServerID:(NSString *)serverID ServerName:(NSString *)serverName RealServerName:(NSString *)realServerName RealServerID:(NSString *)realServerID Vip:(int)vip PartyName:(NSString *_Nullable)partyName;

/// 游戏任务完成上报
/// @param uid UID 使用星辉用户体系时可以为空
/// @param roleName 角色名称
/// @param roleID  角色id
/// @param roleLevel 角色等级
/// @param serverName 角色选服的服务器名称（可以是合服后的服务器名称）
/// @param serverID 角色选服的服务器id（可以是合服后的服务器id）
/// @param realServerName 角色创建所在的服务器名称（非合服后的服务器名称)
/// @param realServerID 角色创建所在的服务器id（非合服后的服务器id）
/// @param missionParentID 父任务id，如果没有则不填
/// @param missionID 任务id
/// @param missionName 任务名称
/// @param missionType 任务类型 1日常任务 5非日常任务多次任务 10非日常任务一次行任务
/// @param coastTime 完成任务耗费的时间,单位s
- (void)uploadUserFinishMissionUid:(int)uid RoleName:(NSString *)roleName RoleID:(NSString *)roleID RoleLevel:(int)roleLevel ServerName:(NSString *)serverName ServerID:(NSString *)serverID RealServerName:(NSString *)realServerName RealServerID:(NSString *)realServerID MissionParentID:(NSString *)missionParentID MissionID:(NSString *)missionID MissionName:(NSString *)missionName MissionType:(int)missionType CoastTime:(int)coastTime;


/// 设置退出上报，请于AppDelegate中的applicationWillTerminate：方法中实现
- (void)setRSDataUploadClose;

@end

NS_ASSUME_NONNULL_END
